/**
 * 该文件为服务端，用来实时接受客户端输出的字符
 */


#include "common.hpp"

int main()
{
    /**
     * 实时读取客户端发来的字符
     * 主要功能：
     * 
     * 1.已读方式打开命名管道文件
     * 2.利用fflush实时刷新缓冲区的字符
     * 3.关闭文件描述符
     */
    int fd = open(namePipe,O_RDONLY);
    assert(fd!=-1);
    while(true)
    {
        char buff[SIZE]{0};
        ssize_t n = read(fd,buff,SIZE-1);
        if(n>0)
        {
            buff[n] = 0;
            printf("%c",buff[0]);
            fflush(stdout);
        }
        else if(n == 0)
        {
            std::cout<<std::endl;
            std::cout<<"写端退出，终止读端"<<std::endl;
            break;
        }
        else 
        {
            perror("read");
            close(fd);
            exit(1);
        }
    }
    close(fd);
    return 0;
}